package pre.bookcloud.java21.chapter2.逻辑运算符_三元表达式2_15;

/** 2.15 逻辑运算符—?三元表达式 */
public class Lesson25 {
  public static void main(String[] args) {
    /*
    一、三元表达式定义：
      1.格式：
        数据类型 变量名 = 布尔表达式 ? 表达式1 : 表达式2;
      2.执行流程：
        1)先判断布尔表达式的结果为true还是false。
        2)如果为true，则执行表达式1，并将结果赋值给变量。
        3)如果为false，则执行表达式2，并将结果赋值给变量。
     */
    // 三元表达式的使用
    int a = 10;
    int b = 20;
    int max = a > b ? a : b;
    System.out.println("max:" + max);
    // 三元表达式的使用
    int c = 10;
    int d = 20;
    int min = c > d ? d : c;
    System.out.println("min:" + min);
    /*
    二、三元表达式的使用场景：
      1.当需要根据一个布尔表达式的结果来选择不同的取值时。
      2.当需要根据一个布尔表达式的结果来选择不同的语句时。
     */
    // 场景1：当需要根据一个布尔表达式的结果来选择不同的取值时。
    int age = 18;
    boolean isAdult = age >= 18;
    String msg = isAdult ? "成年人" : "未成年人";
    System.out.println(msg);
    // 场景2：嵌套三元表达式,(高、中、低）
    int score = 80;
    String grade =
        score >= 90 ? "A" : (score >= 80 ? "B" : (score >= 70 ? "C" : (score >= 60 ? "D" : "E")));
    System.out.println("grade:" + grade);
  }
}
